//
//  Problem344.swift
//  TestProject
//
//  Created by 武侠 on 2021/3/16.
//  Copyright © 2021 zhulong. All rights reserved.
//

import UIKit

/*
 344. 反转字符串 【字符串反转】
 编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

 不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

 示例 1：
     输入：["h","e","l","l","o"]
     输出：["o","l","l","e","h"]
 示例 2：
     输入：["H","a","n","n","a","h"]
     输出：["h","a","n","n","a","H"]
 */
@objcMembers class Problem344: NSObject {
    func solution() {
        var a:[Character] = ["h","e","l","l","o"]
        print(reverseString(&a))
        print(a)
        
        var b:[Character] = ["H","a","n","n","a","h"]
        print(reverseString(&b))
        print(b)
    }
    
    func reverseString(_ s: inout [Character]) {
        var temp: Character? = nil
        for i in 0..<s.count/2 {
            print(i, s.count-1-i)
            temp = s[i]
            s[i] = s[s.count-1-i]
            s[s.count-i-1] = temp!
        }
    }
}
